package com.shujia.wyh.day05;

/*
    代码块：使用大括号括起来的代码段，我们称之为代码块，根据其定义的位置不同，功能不同，分为4种代码块
    1、局部代码块
        将代码块定义在方法中
    2、构造代码块
        将代码块定义在类中方法外，是在构造方法调用之前执行，多个构造代码块之间是自上而下顺序执行
    3、静态代码块
        将代码块定义在类中方法外，需要使用static关键字修饰，不需要创建对象，在类的加载的时候就会顺序执行,只会在程序类加载的时候执行一次
        之后的运行将不会再次执行
    静态代码块---构造代码块---构造方法
    4、同步代码块(放到多线程的时候讲解)
 */
public class CodeDemo {
    static {
        System.out.println("这是静态代码块1");
    }

    {
        System.out.println("这是定义在类中方法外的构造代码块1");
    }

    CodeDemo(){
        System.out.println("这是无参构造方法。。。。");
    }

    {
        System.out.println("这是定义在类中方法外的构造代码块2");
    }

    static {
        System.out.println("这是静态代码块2");
    }

    public static void main(String[] args) {
        //局部代码块
//        {
//            int a = 10;
//            System.out.println(a);
//        }
////        System.out.println(a);
//
//        {
//            int b = 30;
//            System.out.println(b);
//        }
        CodeDemo c1 = new CodeDemo();
        System.out.println("======================");
        CodeDemo c2 = new CodeDemo();

    }
}
